//
//  ZXXHomeController.swift
//  M-Weibo
//
//  Created by ZXX on 16/4/18.
//  Copyright © 2016年 ZXX. All rights reserved.
//

import UIKit

//cell 重用标示
let HomeIdentify = "HomeIdentify"

class ZXXHomeController: ZXXVistorViewController {
//   保存微博数据的数组
    var statusArray: [ZXXStatus]?
    override func viewDidLoad() {
        super.viewDidLoad()
//      判断是否登录
//        如果没有登录
        if !isLogin{
            visitorView?.setVisitorInfo(nil , title: nil)
            return
        }

        
//        调用网络方法
        loadData { [weak self](statuss) -> () in
//            赋值
            self?.statusArray = statuss
//            刷新UI
            self?.tableView.reloadData()
        }
        
        //        设置tableView
        setupTableViewInfo()
    }
    
    //  MARK: -  设置tableView
    private func setupTableViewInfo(){
//        注册cell 
        
        tableView.registerClass(ZXXStatusCell.self , forCellReuseIdentifier: HomeIdentify)
//        设置风格
        tableView.separatorStyle = .None
//        自动计算行高
        tableView.rowHeight = UITableViewAutomaticDimension
//        预估行高
        tableView.estimatedRowHeight = 200
        
    }


    
    // MARK: -  发送网路请求
    private func loadData(callback:(statuss: [ZXXStatus])->()){
        let urlString = "https://api.weibo.com/2/statuses/home_timeline.json"
        let params = [ "access_token":ZXXUserAccountTools.sharedUserAccountTools.accessToken!
        ]
        
       ZXXNetWorkTools.sharedNetWorkTools.GET(urlString, params: params, success: { (response) -> () in
        if  response != nil {
//            print(response)
//            字典转模型
            guard let statusesArray = response?["statuses"] as? [[String: AnyObject]] else{
                return
            }
            
            // 定义一个临时数组
            var tempArray:[ZXXStatus] = [ZXXStatus]()

//            遍历数组转模型
            for dict in statusesArray {
                
                let status = ZXXStatus(dict: dict)
                // 往数组中添加模型
                tempArray.append(status)
            }
//            执行闭包 把数组反回去
            callback(statuss: tempArray)
            
            
            
        }
        }) { (error) -> () in
            print(error)
        }
    }
    
    
    // MARK: - Table view data source
//    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // return the number of rows
                return statusArray?.count ?? 0
        
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(HomeIdentify, forIndexPath: indexPath) as! ZXXStatusCell
       
        return cell
    }

    
    
}





